#!/usr/bin/python
# -*- coding: utf-8 -*-
# @name             : 数据库操作配置
# @author           : OneYoung
# @create           : 2024/02/04
# @version          : v1.0
# @desc             : 封装常用的数据库操作

import random
from utils.db_getter import DBGetter as db

"""
数据库增删改查操作
"""


def select(sql: str, database: str = None) -> list:
    """
    查询所有匹配的结果
    :param sql: 原生SQL语句
    :param database: 执行SQL的数据库,为空读取默认库
    :return: 全部匹配的数组结果
    """

    return db.get_all_result(sql=sql, database=database)


def select_first(sql: str, database: str = None):
    """
    查询第一条匹配的结果
    :param sql: 原生SQL语句
    :param database: 执行SQL的数据库,为空读取默认库
    :return: 一条匹配的数组结果
    """

    return db.get_first_result(sql=sql, database=database)


def select_random_one(sql: str, database: str = None):
    """
    所有匹配的结果中取随机一条查询结果
    :param sql: 原生SQL语句
    :param database: 执行SQL的数据库,为空读取默认库
    :return: 随机选择一条数组结果
    """

    result_list = db.get_all_result(sql=sql, database=database)
    if result_list:
        return random.choice(result_list)
    return None


def insert(sql: str, database: str = None):
    """
    插入数据
    :param sql: 原生SQL语句
    :param database: 执行SQL的数据库,为空读取默认库
    :return:
    """
    return db.execute_sql(sql=sql, database=database)


def update(sql: str, database: str = None):
    """
    更新数据
    :param sql: 原生SQL语句
    :param database: 执行SQL的数据库,为空读取默认库
    :return:
    """
    return db.execute_sql(sql=sql, database=database)


def delete(sql: str, database: str = None):
    """
    删除数据
    :param sql: 原生SQL语句
    :param database: 执行SQL的数据库,为空读取默认库
    :return:
    """
    return db.execute_sql(sql=sql, database=database)
